Conventional communication systems allow a user of a client device (endpoint), such as a personal computer or mobile device, to conduct voice or video calls with one or more other endpoints over a packet-based computer network such as the Internet. Frequently, communication of call data by endpoints is effected by the endpoints adhering to an agreed communication protocol. One example of this is the Session Initiation Protocol (SIP). In broad terms, SIP dictates that calls be negotiated in accordance with an endpoint-to-endpoint request-response-based transaction paradigm in which (among other things) the call is progressed from an initial unconnected state to a state in which real-time media can flow between endpoints by SIP user agents transmitting a sequence of request messages to other user agents of other endpoints and receiving respective response messages in return, with maintenance and eventual termination of the call being similarly effected. Each user agent may maintain a state machine for the duration of the call which is used to track current call state. The state machines are suitably updated upon transmission of salient requests and receipt of salient responses.